分别用fgetc,fgets,fread,read读取文件内容,输出到屏幕 | 您所在的位置:网站首页 › fgets str n fp 函数从文件中读入一个字符串 › 分别用fgetc,fgets,fread,read读取文件内容,输出到屏幕 |
1.fgetc()函数
在C语言中,
fgetc是一个
标准库函数,用于从文件中读取下一个字符。它属于
头文件中定义的输入函数之一。
功能:从文件中读出一个字符,必须先调用
fopen
打开文件,然后才能读文件
int fgetc(FILE *stream);
参数:
stream
是
fopen
的返回值
返回值: 是读出的字符
(
类型是
int
, 因为
char
可以相当于一个特殊的
int
是
1
字节的
int)
EOF表示
读到了文件尾或者读失败
示例:用fgetc读取文件内容,输出到屏幕
#include
int main()
{
FILE *fp = fopen("hello.c", "r");
if(fp != NULL)
{
char a = fgetc(fp); //读出一个字符
while(a != EOF) //EOF表示读失败,不是EOF说明没读到文件尾
{
printf("%c", a);
a = fgetc(fp); //继续读
}
}
else
{
printf("open failed\n");
}
}
2.fgets()函数
在C语言中,fgets 是一个标准库函数,用于从文件中读取一行字符串。它也是 头文件中定义的输入函数之一。 功能:从文件中读取一行 char *fgets(char *s, int size, FILE *stream); 参数 1: s 读到的数据存放的缓存区 ( 暂存区 ) 的首地址 (s 通常是一个字符串数组 ) 2: size : s 中最多能存多少个字节 3: stream fopen 的返回值 返回值 : 是个 char*( 指针 ) , NULL 表示读失败或者读到了文件尾 示例: 用fgets读取文件内容,输出到屏幕 #include #include int main() { FILE *fp = fopen("test.c","r"); if (fp == NULL) { printf("open file error: errno:%d\n", errno); perror("fopen"); } else { printf("open file success\n"); char buf[100] = {0}; char* ret = fgets(buf, sizeof(buf), fp); while (ret != NULL) { printf("%s", buf); ret = fgets(buf, sizeof(buf), fp); } fclose(fp); } } 3.fread()函数在C语言中,fread 是一个标准库函数,用于从文件流中读取块数据。它属于 头文件中定义的输入函数之一。 功能: fread 函数从指定的流 stream 中读取 nmemb 个元素,每个元素的大小为 size 字节,并将它们存储在 ptr 指向的内存块中。fread 是一个二进制读取函数,它可以读取任何类型的数据。 size_t fread ( void * ptr , size_t size , size_t nmemb , FILE * stream ); 参数说明: ptr ---> 读出的数据存放的位置 ( 缓存区首地址 ) size --> 一个元素的大小 nmemb --> 元素个数 stream --> fopen 的返回值 返回值 : 实际读出的块数 , 0) { printf("%s", buf); memset(buf, 0, sizeof(buf)); //清理缓冲区 } } fclose(fp); } 4.read()函数在C语言中,read 是一个系统调用函数,用于从文件描述符中读取数据。它与 fread 函数不同,fread 是C标准库函数,作用于流(FILE *),而 read 直接在文件描述符层面上工作。 功能 : read 函数从文件描述符 fd 指向的文件中读取最多 count 个字节的数据,并将它们存储在 buf 指向的缓冲区中。如果读取成功, read 返回实际读取的字节数。如果到达文件末尾,返回 0。如果发生错误,返回 -1。 size_t read ( int fd , void * buf , size_t count ); 参数: fd open 的返回值 ( 一个文件描述符 ) buf 读取的数据,存放的位置 ( 缓存区的首地址 ) count 想要读取的数据的长度 ( 缓存区的大小 ) 返回值: > 0 实际读到的数据的长度 0) { printf("%s", buf); memset(buf, 0, sizeof(buf)); } close(fd); } }到这里代码就分享结束,以上就是fgetc(),fgets(),fread(),read()的基本使用,大家可以参考学习学习,如有不足或错误,请在评论区留言。 5.结语最后的最后,如果大家觉得有用,就请点点赞,点点关注,谢谢大家! |
CopyRight 2018-2019 实验室设备网 版权所有 |